#!/usr/bin/env python
# -*- coding: utf-8 -*-

class BizException(Exception):
    """业务逻辑异常，比如余额不足、状态非法等"""
    def __init__(self, msg="业务异常", code=400, data=None):
        super().__init__(msg)
        self.code = code
        self.msg = msg
        self.data = data or {}


class AuthException(Exception):
    """认证相关异常，如未登录或 token 无效"""
    def __init__(self, msg="认证失败", code=401):
        super().__init__(msg)
        self.code = code
        self.msg = msg


class ForbiddenException(Exception):
    """权限不足异常"""
    def __init__(self, msg="权限不足", code=403):
        super().__init__(msg)
        self.code = code
        self.msg = msg


class NotFoundException(Exception):
    """资源不存在"""
    def __init__(self, msg="资源不存在", code=404):
        super().__init__(msg)
        self.code = code
        self.msg = msg